/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package proyecto;

import java.util.ArrayList;

/**
 *
 * @author manuel.pena3
 */
public class Usuario {
    
    private String nombre;
    private String ID;
    private ArrayList<Tarea> tareas;
    private ArrayList<Proyecto> proyectos;
    private ArrayList<Tarea> tareasFinalizadas;
    
    public Usuario(){
        tareas = new ArrayList<>();
        proyectos = new ArrayList<>();
        tareasFinalizadas = new ArrayList<>();
    }

    public String getNombre() {
        return nombre;
    }

    public void setNombre(String nombre) {
        this.nombre = nombre;
    }

    public String getID() {
        return ID;
    }

    public void setID(String ID) {
        this.ID = ID;
    }

    public ArrayList<Tarea> getTareas() {
        return tareas;
    }

    public void setTareas(ArrayList<Tarea> tareas) {
        this.tareas = tareas;
    }

    public ArrayList<Proyecto> getProyectos() {
        return proyectos;
    }

    public void setProyectos(ArrayList<Proyecto> proyectos) {
        this.proyectos = proyectos;
    }

    public ArrayList<Tarea> getTareasFinalizadas() {
        return tareasFinalizadas;
    }

    public void setTareasFinalizadas(ArrayList<Tarea> tareasFinalizadas) {
        this.tareasFinalizadas = tareasFinalizadas;
    }
    
    public void asignarTarea(Tarea tarea){
        if(!tareas.contains(tarea))
            tareas.add(tarea);
    }
    
    public void desasignarTarea(Tarea tarea){
        if(tareas.contains(tarea))
            tareas.remove(tarea);
    }
    
    public void delegarTarea(Usuario aux, Tarea tarea){
        aux.asignarTarea(tarea);
        this.desasignarTarea(tarea);
    }
    
    public void asignarProyecto(Proyecto tarea){
        if(!proyectos.contains(tarea))
            proyectos.add(tarea);
    }
    
    public void desasignarProyecto(Proyecto tarea){
        if(proyectos.contains(tarea))
            proyectos.remove(tarea);
    }
    
    public void finalizarTarea(Tarea tarea){
        if (tareas.contains(tarea)){
            if(!tareasFinalizadas.contains(tarea))
                tareasFinalizadas.add(tarea);
            tareas.remove(tarea);
        }
    }
}
